package com.zb.mobile;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author WEN
 * @Date 2023/12/1 0001
 **/
@Data
@ApiModel("服务商移动端工单列表对象")
public class NetworkMobileOrderListVo {
    @ApiModelProperty(value = "工单ID")
    private Long id;

    @ApiModelProperty(value = "工单单号")
    private String workNo;

    @ApiModelProperty(value = "工单模块")
    private String module;

    @ApiModelProperty(value = "质保状态：false-保内，true-保外")
    private Boolean overinsured;

    @ApiModelProperty(value = "工单级别")
    private String orderLevel;

    @ApiModelProperty(value = "工单级别颜色")
    private String orderLevelColor;

    @ApiModelProperty(value = "服务商工单状态：1-待接单，2-待派工，3-待工程师接单，4-服务中，5-待结单，6-已完成，7-已取消， 50-待结算；" +
                             " 工程师工单状态：1-待接单，2-服务中，3-待结单，4-已完成，5-已取消， 50-待结算；     ")
    private Integer status;

    @ApiModelProperty(value = "报单时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "工单状态已完成，是否已结算")
    private Boolean waitSettlementOrder = Boolean.FALSE;

    @ApiModelProperty(value = "客户姓名")
    private String userName;

    @ApiModelProperty(value = "客户手机号")
    private String userPhone;

    @ApiModelProperty(value = "客户地址-省")
    private String province;

    @ApiModelProperty(value = "客户地址-市")
    private String city;

    @ApiModelProperty(value = "客户地址-县/区")
    private String area;

    @ApiModelProperty(value = "客户地址-镇")
    private String town;

    @ApiModelProperty(value = "客户地址-详细地址")
    private String address;

    @ApiModelProperty(value = "客服派单时间")
    private Date serviceDispatchTime;

    @ApiModelProperty(value = "期望开始上门日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expectedDate;

    @ApiModelProperty(value = "期望开始上门时间")
    @JsonFormat(pattern = "HH:mm")
    private Date expectedStartTime;

    @ApiModelProperty(value = "期望结束上门时间")
    @JsonFormat(pattern = "HH:mm")
    private Date expectedEndTime;

    @ApiModelProperty(value = "服务商派单给工程师时间")
    private Date networkDispatchTime;

    @ApiModelProperty(value = "是否工程师：false-不是，true-是")
    private boolean engineer = Boolean.FALSE;

    @ApiModelProperty(value = "是否预约：false-未预约，true-已预约")
    private boolean reservation = Boolean.FALSE;

    @ApiModelProperty(value = "是否签到：false-未签到，true-已签到")
    private boolean signIn = Boolean.FALSE;

    @ApiModelProperty(value = "预约日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reservationDate;

    @ApiModelProperty(value = "预约开始时间")
    @JsonFormat(pattern = "HH:mm")
    private Date reservationStartTime;

    @ApiModelProperty(value = "预约结束时间")
    @JsonFormat(pattern = "HH:mm")
    private Date reservationEndTime;

    @ApiModelProperty(value = "申请结单时间")
    private Date applyfinishTime;

    @ApiModelProperty(value = "结单时间/工单完成时间")
    private Date endOrderTime;

    @ApiModelProperty(value = "取消工单时间")
    private Date cancelTime;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableMoney;

    @ApiModelProperty(value = "实收金额")
    private BigDecimal actualReceivedMoney;

    @ApiModelProperty(value = "是否有工程师申请待审核的工单：false-没有，true-有")
    private boolean hasEngineerApplyOrderWaitCheck = Boolean.FALSE;

    @ApiModelProperty(value = "是否有工程师申请待审核的类型：1-工程已申请转单")
    private Integer hasEngineerApplyOrderWaitCheckType;

    @ApiModelProperty(value = "是否暂挂")
    private Integer isPause;
}
